home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
d86v317b.arc
/
D04.DOC
< prev
next >
Wrap
Text File
|
1988-01-13
|
11KB
|
229 lines
CHAPTER 4 D86 CONTROL KEYS
D86 has a set of functions invoked by single keys. Keys which
switch the display (for example, to show a help screen) can be
pressed in any context, to be acted upon immediately. Other
keys, such as the single-stepping keys, can be invoked any time
D86 is awaiting the beginning of an assembly language command.
Display Control Keys
There are numerous keys that let you control the switchable
window in the upper right corner of the screen. The F10 and Alt-
F10 keys let you toggle between windows, giving you a "tour" of
what's available. Various keys accessed by using the "Ctrl" key
as a shift key let you move directly to the window of your
choice.
The keys in this section are acted upon in any debugger context,
whether you are in the main command mode or in the middle of one
of the other modes (typing in a debugger command, an immediate-
execute line, a patch-memory line, or a memory window
specification):
ALT-F10 Toggles you between Help and Non-Help modes. If the
window is showing you a help page, it will switch to
the last Non-Help page that was displayed. If not, the
window switches to the last Help screen displayed for
the current context.
(HELP key on Wang, F11 key on TI-PC, CTRL-PF5 key on
Sanyo)
F10 In non-help mode, toggles you between the available
non-help windows: the sign-on/second disassembly
window, the status window, the memory display window,
and, if you have a floating-point chip, the floating-
point display window.
In help mode, toggles you between the help windows
available in the current context.
Ctrl-I (or TAB) takes you from any other window directly to
the sign-on/second disassembly window. This window
contains the D86 sign-on message until the first time
that the Instruction Pointer leaves the first
disassembly page. From that point on, the sign-on
message is no longer available, and you get a second
disassembly page instead.
Ctrl-S Takes you from any other window directly to the
debugger status window.
Ctrl-F Takes you from any other window directly to the
floating point display window, if your machine has a
floating point chip in operation. If not, this key is
ignored.
Ctrl-N If you have a memory display window in sight, this key
advances to the Next window full of memory.
4-2
If you do not have a memory display window, but do have
at least one memory line specification, this key takes
you from any other window to the memory display window,
continuing from the end of the last line display.
If you have no memory line specifications set up, this
key is ignored.
Ctrl-P If you have a memory display window in sight, this key
retreats the pointer to memory displayed, by the amount
displayed in the window. If all the memory formats
specified generate a fixed-size display (such as the
B,W,T formats), then this will effect a "Previous page"
function. If there are formats producing a variable-
size display (such as the N,D,C,S,L formats), then the
retreat will be a probably imperfect approximation to
an appropriate "Previous page" amount.
If you do not have a memory display window, this key
will go to one, just like the Ctrl-N key.
Ctrl-Q If you are not displaying a help window, this key takes
you to the last help window that was displayed for the
current context. If you are already displaying a help
window, this key toggles through all the help windows
available for this context.
Instruction Pointer Positioning Control Keys
All the remaining keys in this chapter can be invoked any time
the debugger is in its main command mode, awaiting the first key
of a debugger command or immediate assembly line. They change
the value of the Instruction Pointer (IP register), and thus they
change the disassembly display.
None of the control keys in this section cause any program code
to be executed, other than the equivalent of a JMP instruction,
to the place that the disassembly cursor winds up.
WARNING: On some debuggers, you can change the location of what
is being disassembled without changing the IP register value.
I've decided on a "what you see is what you get" philosophy,
since you may well be moving the IP cursor to effect a jump in
the program (for example, you might use the Down-Arrow key to
experimentally skip over the execution of one or more
instructions in the program). If your intention was just to look
around the program before continuing execution at the place you
left off, you may use the HOME key to return to the place where
execution last halted.
Down-Arrow Jump to the instruction following the current one.
Visually, the disassembly cursor moves down by one
instruction line.
4-3
Up-Arrow Jump to the instruction preceding the current one.
Visually, the disassembly cursor moves up by one
instruction line. NOTE that the implementation of
this function is a little tricky, since it's
impossible to reliably disassemble backwards. What
D86 does is retreat a fixed, fair-sized distance,
disassemble forward until the current instruction is
reached, and take the instruction disassembled just
before the current one. If there is non-instruction
code in memory shortly before the current position,
the synchronization may fail, and this instruction
may put you in the middle of a previous instruction
instead of the beginning. If this happens, you may
adjust by using the Ctrl-D or Ctrl-U keys.
Ctrl-D This key is identical to the Down-Arrow key, except
the jump forward is just one byte, instead of a full
(usually multibyte) instruction. (IP is
incremented.) You use this key when you think
you've landed in the middle, rather than the start,
of an instruction.
Ctrl-U This key decrements IP, moving the cursor "Up" by
one byte's worth. Like Ctrl-D, it is used to
manually synchronize disassembly.
Pg Dn Jump to the next disassembly page, at the memory
location immediately following this page. Repeated
pressing of this key allows you to scan program code
quickly.
(Alt-Down-Arrow on the TI-PC)
Pg Up Jump to the previous disassembly page, ending with
the instruction just before the top instruction on
the current page. NOTE the warning given with the
Up-Arrow description, about possible synchronization
problems, applies here as well.
(Alt-Up-Arrow on the TI-PC)
Home If you have moved the IP cursor since the last
program instruction executed, then this key returns
IP to that spot. If you are already at that spot,
this key returns you to the program's starting
location. For COM files, this is always location
0100 in the original code segment. For EXE files,
this location was derived from the EXE header
record. Note that repeated pressing of HOME will
cause IP to alternate between the two locations, so
you can't mess yourself up by pressing the key one
too many times-- just press it again.
Ctrl-E Jump to the End of the program, as determined when
it was loaded, and possibly advanced if the program
was patched from the end.
4-4
Program Execution Control Keys
F1 Single step the current instruction. If the
instruction is a call, go into the procedure to
single step it. If you want the entire procedure
executed on a single keystroke, use the F2 key.
F2 Procedure step: start program, trapping at the
instruction following the current one. This is used
for executing a procedure call all at once; for
breaking out of a loop; and for executing a repeated
string operation all at once.
F4 Start the program, setting a trap at the destination
of the conditional jump instruction currently
pointed to. If we are not pointing to a conditional
jump, then we single step.
F6 Start the program, setting a trap at the address on
top of the stack (hopefully a procedure return
address).
Special Action Control Keys
F3 Repeat the last typed-in assembly language or
debugger command
F7 Enter the Patch Memory mode, described in Chapter 3.
Shift-F7 Mark the current CS:IP memory location, for use by a
following F debugger line command. F can either
return to this location, or find memory bytes that
match the ones at this location.
(Ctrl-7 on the Sanyo)
Alt-F9 If you have a Color video board, your debugger
display may become corrupted by the program's
console output. If it does, press Alt-F9 to
eliminate the corruption. This key exists only
temporarily; on later versions of D86, the
corruption will be corrected automatically.
(Ctrl-Shift-PF4 on the Sanyo)
Ctrl-T Reset the debugger's internal Top-of-Stack pointer
to the current SP value. This will cause the
current stack display to become empty, so that
subsequently pushed values will appear by themselves
on the stack display.